import request from '@/utils/request'

/**
 * 获取用户下拉列表
 * @returns {Promise} 请求结果
 */
export function getUserList() {
  return request({
    url: '/basic/web/user_feature/userList',
    method: 'get'
  })
}

/**
 * 获取功能id列表
 * @param {number} [categoryId] 分类ID (1-导航栏 2-功能)
 * @returns {Promise} 请求结果
 */
export function getFeatureList(categoryId) {
  return request({
    url: '/basic/web/user_feature/featureList',
    method: 'get',
    params: { categoryId }
  })
}

/**
 * 查询app用户功能权限列表
 * @param {Object} params 查询参数
 * @param {number} [params.userId] 用户ID
 * @param {number} [params.featureId] 功能ID
 * @returns {Promise} 请求结果
 */
export function listUserFeatures(params) {
  return request({
    url: '/basic/web/user_feature/list',
    method: 'get',
    params
  })
}

/**
 * 获取app用户功能权限详细信息
 * @param {number} userId 用户ID
 * @returns {Promise} 请求结果
 */
export function getUserFeatureDetail(userId) {
  return request({
    url: `/basic/web/user_feature/${userId}`,
    method: 'get'
  })
}

/**
 * 新增app用户功能权限
 * @param {Object} data 权限数据
 * @param {number} data.userId 用户ID
 * @param {Array<number>} [data.featureIds] 功能ID列表
 * @returns {Promise} 请求结果
 */
export function addUserFeature(data) {
  return request({
    url: '/basic/web/user_feature',
    method: 'post',
    data
  })
}

/**
 * 修改app用户功能权限
 * @param {Object} data 权限数据
 * @param {number} data.userId 用户ID
 * @param {Array<number>} [data.featureIds] 功能ID列表
 * @returns {Promise} 请求结果
 */
export function updateUserFeature(data) {
  return request({
    url: '/basic/web/user_feature',
    method: 'put',
    data
  })
}